%matplotlib notebook
import numpy as np
import matplotlib.pyplot as plt
from pandas.plotting import scatter_matrix
import pandas as pd
import visualization_metrics as v
import seaborn as sns
RP = v.RegrParams
params = {
'plot': True,
'undersample': not True,
'oversample': False
}
suffix_file = "_averages"
dict_vals = {}
dict_vals_new = {}
#val = v.main("gen_averages.csv", plot=plot)
#dict_vals['rnd'] = val
rp = RP()
rp.is_overhead_node_linear = False
rp.is_latency_overhead_vertical = True
rp.is_latency_overhead_linear = False
params['regr_params'] = rp
val, val_new = v.main("generated/aggregated/rr_20_nodes_4_depth_all_receivers_gen" + suffix_file + ".csv", **params)
dict_vals['rr'] = val
dict_vals_new['rr'] = val_new
rp = RP()
rp.is_overhead_node_linear = False
rp.is_latency_overhead_vertical = True
rp.is_latency_overhead_linear = False
params['regr_params'] = rp
val, val_new = v.main("generated/aggregated/double_rr_20_nodes_4_depth_all_receivers_gen" + suffix_file + ".csv", **params)
dict_vals['double_rr'] = val
dict_vals_new['double_rr'] = val_new
rp = RP()
rp.is_overhead_node_linear = False
rp.is_latency_overhead_vertical = True
rp.is_latency_overhead_linear = False
params['regr_params'] = rp
val, val_new = v.main("generated/aggregated/triple_rr_20_nodes_4_depth_all_receivers_gen" + suffix_file + ".csv", **params)
dict_vals['triple_rr'] = val
dict_vals_new['triple_rr'] = val_new
rp = RP()
rp.is_latency_node_linear = False
rp.is_latency_overhead_linear = False
params['regr_params'] = rp
val, val_new = v.main("generated/aggregated/overhead_10-20_nodes_4_depth_all_receivers_gen" + suffix_file + ".csv", **params)
dict_vals['overhead'] = val
dict_vals_new['overhead'] = val_new
rp = RP()
params['regr_params'] = rp
val, val_new = v.main("generated/aggregated/arbitrary_20_nodes_4_depth_all_receivers_gen"+suffix_file+".csv", **params)
dict_vals['arbitrary'] = val
dict_vals_new['arbitrary'] = val_new
rp = RP()
params['regr_params'] = rp
val, val_new = v.main("generated/aggregated/rr_20_nodes_4_depth_some_receivers_gen" + suffix_file + ".csv", **params)
dict_vals['rr_some'] = val
dict_vals_new['rr_some'] = val_new
rp = RP()
params['regr_params'] = rp
val, val_new = v.main("generated/aggregated/double_rr_20_nodes_4_depth_some_receivers_gen" + suffix_file + ".csv", **params)
dict_vals['double_rr_some'] = val
dict_vals_new['double_rr_some'] = val_new
rp = RP()
params['regr_params'] = rp
val, val_new = v.main("generated/aggregated/overhead_10-20_nodes_4_depth_some_receivers_gen" + suffix_file + ".csv", **params)
dict_vals['overhead_some'] = val
dict_vals_new['overhead_some'] = val_new
rp = RP()
rp.is_overhead_node_linear = False
rp.is_latency_overhead_vertical = True
rp.is_latency_overhead_linear = False
params['regr_params'] = rp
val, val_new = v.main("generated/aggregated/rr_20_nodes_4_depth_half_receivers_gen" + suffix_file + ".csv", **params)
dict_vals['rr_half'] = val
dict_vals_new['rr_half'] = val_new
rp = RP()
rp.is_overhead_node_linear = False
rp.is_latency_overhead_vertical = True
rp.is_latency_overhead_linear = False
params['regr_params'] = rp
val, val_new = v.main("generated/aggregated/double_rr_20_nodes_4_depth_half_receivers_gen" + suffix_file + ".csv", **params)
dict_vals['double_rr_half'] = val
dict_vals_new['double_rr_half'] = val_new
rp = RP()
rp.is_overhead_node_linear = False
rp.is_latency_overhead_vertical = True
rp.is_latency_overhead_linear = False
params['regr_params'] = rp
val, val_new = v.main("generated/aggregated/triple_rr_20_nodes_4_depth_half_receivers_gen" + suffix_file + ".csv", **params)
dict_vals['triple_rr_half'] = val
dict_vals_new['triple_rr_half'] = val_new
rp = RP()
rp.is_latency_node_linear = False
rp.is_latency_overhead_linear = False
params['regr_params'] = rp
val, val_new = v.main("generated/aggregated/overhead_20_nodes_4_depth_half_receivers_gen" + suffix_file + ".csv", **params)
dict_vals['overhead_half'] = val
dict_vals_new['overhead_half'] = val_new
rp = RP()
params['regr_params'] = rp
val, val_new = v.main("generated/aggregated/arbitrary_20_nodes_4_depth_half_receivers_gen"+suffix_file+".csv", **params)
dict_vals['arbitrary_half'] = val
dict_vals_new['arbitrary_half'] = val_new
def plot(dict_vals, filename):
keys = sorted([k for k in dict_vals.keys() if k != 'rnd'])
r = np.arange(len(keys))
offset = 0.2
l = [dict_vals[k] for k in keys]
x, y, z = zip(*l)
import seaborn as sns
fig = plt.figure()
ax = fig.add_subplot(111)
ax.bar(r-offset, x,width=offset,color='b',align='center')
ax.bar(r, y,width=offset,color='g',align='center')
ax.bar(r+offset, z,width=offset,color='r',align='center')
ax.set_xlabel("Strategy")
ax.set_ylabel("Score")
ax.set_title("Strategies scores")
ax.set_xticks(r)
plt.xticks(rotation=45)
ax.set_xticklabels(keys)
ax.legend(["nb_nodes", "latency", "overhead"])
fig.tight_layout()
plt.show()
save_path = "./generated/imgs/"
plt.savefig(save_path + filename + ".png", dpi=600)
dict_vals = {k:v for (k, v) in dict_vals.items() if "some" not in k}
dict_vals_new = {k:v for (k, v) in dict_vals_new.items() if "some" not in k}
for k, (a, b, c) in dict_vals.items():
print(k, a, b, c)
#print(k, c)
plot(dict_vals, "final_plot_basic_model")
for k, (a, b, c) in dict_vals_new.items():
print(k, a, b, c)
#print(k, c)
plot(dict_vals_new, "final_plot_new_model")
def norm(t, max_t):
new_t = ()
return tuple(item/m for item, m in zip(t, max_t))
l = [v for v in dict_vals.values()]
x, y, z = zip(*l)
x = max(x)
y = max(y)
z = max(z)
t = (x,y,z)
dict_vals_norm = {k: norm(v, t) for k, v in dict_vals.items()}
plot(dict_vals_norm, "final_plot_norm_model")